package com.api.phm.service;

import com.api.common.domain.model.RuleLatestDataQuery;
import com.api.phm.domain.model.AlaRuleDevModel;
import com.api.phm.domain.query.AlarmLogQuery;
import com.api.phm.domain.query.alarmRule.AlarmRuleCheck;
import com.api.phm.domain.query.alarmRule.AlarmRuleQuery;
import com.api.phm.domain.vo.AlarmLogVo;
import com.api.phm.domain.vo.AlarmRuleQueryListVo;
import com.api.phm.domain.vo.AlarmRuleVo;

import java.util.List;
import java.util.Map;

public interface IAlarmRuleService {
    List<AlarmRuleQuery> searchList(AlarmRuleVo alarmRuleVo);

    List<AlarmRuleQuery> searchList2(AlarmRuleQueryListVo alarmRuleQueryListVo);

    AlarmRuleQuery searchItem(AlarmRuleVo alarmRuleVo);

    AlarmRuleQuery add(AlarmRuleVo alarmRuleVo);

    List<AlarmLogQuery> searchAlarmLog(AlarmLogVo alarmLogVo);

    AlarmLogQuery searchAlarmLogItem(AlarmLogVo alarmLogVo);

    Long addAlarmLog(AlarmLogVo alarmLogVo);

    void updateAlarmReadMark(Long alarmId);

    void update(AlarmRuleVo alarmRuleVo);

    void delete(Long ruleId);

    void refreshCacheRule();

    Map<String, RuleLatestDataQuery> getCacheRule();

    void addCacheRule(List<RuleLatestDataQuery> items);

    void checkAllRule();

    int checkRule(AlarmRuleQuery model);

    Boolean judgeMongo(AlarmRuleCheck item, AlaRuleDevModel devModel);
}
